PHP Problem mit Suche in MySQL

PHP Problem mit Suche in MySQL

am 02.12.2005 12:06:31 von Christian Beine

Hallo.

Vorab moechte ich sagen,dass ich geringe Kenntnisse in der PHP
Programmierung habe.Ich habe beim _googlen_ folgendes Skript gefunden,
das in einer MySQL Datenbank sucht.Im Groben funktioniert das wohl auch,
allerdings passt irgendetwas mit den Ergebnislinks nicht.
Ich das _limit_ mal auf 1 gesetzt,so dass jeder gefundene Treffer
auf einer neuen Seite angezeigt werden sollte,was aber nicht so recht
klappt.
Nach dem ersten Durchlauf ist der Ergebnislink
.../search.php?s=1&q=[suchmuster]
der so aber wohl nicht funktioniert.
Gebe ich manuell in die URL eine 2 ein ../search.php?s=2&q=[suchmuster]
passiert auch nichts.
Gebe ich eine 3 ein ../search.php?s=3&q=[suchmuster] werden ploetzlich auch
3 von 4 Ergebnissen angezeigt.
Bei einer 4 ../search.php?s=4&q=[suchmuster] werden wiederum nur 2 von 4
angezeigt.

Leider blicke ich da nicht so ganz durch.Waere jemand so nett mir zu
erkaeren,wo das Problem liegt? Wenn es nicht ein sehr grosser Aufwand ist
waere es nett,wenn vielleicht jemand das Skript so abaendern koennte,dass
die Ergebnislinks funktionieren!?

Vielen Dank im voraus.

Mfg Christian

// Get the search variable from URL

$var = @$_GET['q'] ;
$trimmed = trim($var); //trim whitespace from the stored variable

// rows to return
$limit=1;

// check for an empty string and display a message.
if ($trimmed == "")
{
echo "

Please enter a search...

";
exit;
}

// check for a search parameter
if (!isset($var))
{
echo "

We dont seem to have a search parameter!

";
exit;
}

//connect to your database ** EDIT REQUIRED HERE **
mysql_connect("localhost","user","pass"); //(host, username, password)

//specify database ** EDIT REQUIRED HERE **
mysql_select_db("movies") or die("Unable to select database"); //select
which database we're using

// Build SQL Query
$query = "select * from main where Titel like \"%$trimmed%\"
order by Titel"; // EDIT HERE and specify your table and field names for
the SQL query

$numresults=mysql_query($query);
$numrows=mysql_num_rows($numresults);

// If we have no results, offer a google search as an alternative

if ($numrows == 0)
{
echo "

Results

";
echo "

Sorry, your search: "" . $trimmed . "" returned zero
results

";
exit;
}

// next determine if s has been passed to script, if not use 0
if (empty($s)) {
$s=0;
}

// get results
$query .= " limit $s,$limit";
$result = mysql_query($query) or die("Couldn't execute query");

// display what the person searched for
echo "

You searched for: "" . $var . ""

";

// begin to show results set
echo "Results";
$count = 1 + $s ;

// now you can display the results returned
while ($row= mysql_fetch_array($result)) {
$title = $row["Titel"];

echo "$count.) $title" ;
$count++ ;
}

$currPage = (($s/$limit) + 1);

//break before paging
echo "
";

// next we need to do the links to other results
if ($s>=1) { // bypass PREV link if s is 0
$prevs=($s-$limit);
print " <<
Prev 10
  ";
}

// calculate number of pages needing links
$pages=intval($numrows/$limit);

// $pages now contains int of pages needed unless there is a remainder from
division

if ($numrows%$limit) {
// has remainder so add one page
$pages++;
}

// check to see if last page
if (!((($s+$limit)/$limit)==$pages) && $pages!=1) {

// not last page so give NEXT link
$news=$s+$limit;

echo " ";
}

$a = $s + ($limit) ;
if ($a > $numrows) { $a = $numrows ; }
$b = $s + 1 ;
echo "

Showing results $b to $a of $numrows

";
?>

--
Nichts ist schwieriger und nichts erfordert mehr Charakter als sich im
offenen Gegensnatz seiner Zeit zu befinden und laut zu sagen - Nein.

Re: PHP Problem mit Suche in MySQL

am 02.12.2005 13:29:26 von Fabian Schladitz

Christian Beine schrieb:
> Hallo.
>=20
> Vorab moechte ich sagen,dass ich geringe Kenntnisse in der PHP=20
> Programmierung habe.Ich habe beim _googlen_ folgendes Skript gefunden,
> das in einer MySQL Datenbank sucht.Im Groben funktioniert das wohl auch=
,
> allerdings passt irgendetwas mit den Ergebnislinks nicht.
> Ich das _limit_ mal auf 1 gesetzt,so dass jeder gefundene Treffer
> auf einer neuen Seite angezeigt werden sollte,was aber nicht so recht=20
> klappt.
> Nach dem ersten Durchlauf ist der Ergebnislink=20
> ../search.php?s=3D1&q=3D[suchmuster]
> der so aber wohl nicht funktioniert.
> Gebe ich manuell in die URL eine 2 ein ../search.php?s=3D2&q=3D[suchmus=
ter]=20
> passiert auch nichts.
> Gebe ich eine 3 ein ../search.php?s=3D3&q=3D[suchmuster] werden ploetzl=
ich auch=20
> 3 von 4 Ergebnissen angezeigt.
> Bei einer 4 ../search.php?s=3D4&q=3D[suchmuster] werden wiederum nur 2 =
von 4
> angezeigt.
>=20
> Leider blicke ich da nicht so ganz durch.Waere jemand so nett mir zu=20
> erkaeren,wo das Problem liegt? Wenn es nicht ein sehr grosser Aufwand i=
st
> waere es nett,wenn vielleicht jemand das Skript so abaendern koennte,da=
ss
> die Ergebnislinks funktionieren!?
>=20
> Vielen Dank im voraus.
>=20
> Mfg Christian
>=20
> [Skript]
>=20


Wirf das Skript _sofort_ weg und mach es richtig oder such dir ein=20
Anderes. Ich bekomme schon Augenkrebs, wenn ich das lesen muss. Hab es=20
nicht geschafft bis zu dem Problem zu lesen - war schon viel zu=20
geschockt von der schlechten Qualität des Skriptes.

--=20
Gruss,
Fabian

Re: PHP Problem mit Suche in MySQL

am 02.12.2005 16:42:23 von Christian Beine

Fabian Schladitz wrote:

> Christian Beine schrieb:
>> Hallo.
>>
>> Vorab moechte ich sagen,dass ich geringe Kenntnisse in der PHP
>> Programmierung habe.Ich habe beim _googlen_ folgendes Skript gefunden,
>> das in einer MySQL Datenbank sucht.Im Groben funktioniert das wohl auch,
>> allerdings passt irgendetwas mit den Ergebnislinks nicht.
>> Ich das _limit_ mal auf 1 gesetzt,so dass jeder gefundene Treffer
>> auf einer neuen Seite angezeigt werden sollte,was aber nicht so recht
>> klappt.
>> Nach dem ersten Durchlauf ist der Ergebnislink
>> ../search.php?s=1&q=[suchmuster]
>> der so aber wohl nicht funktioniert.
>> Gebe ich manuell in die URL eine 2 ein ../search.php?s=2&q=[suchmuster]
>> passiert auch nichts.
>> Gebe ich eine 3 ein ../search.php?s=3&q=[suchmuster] werden ploetzlich
>> auch 3 von 4 Ergebnissen angezeigt.
>> Bei einer 4 ../search.php?s=4&q=[suchmuster] werden wiederum nur 2 von 4
>> angezeigt.
>>
>> Leider blicke ich da nicht so ganz durch.Waere jemand so nett mir zu
>> erkaeren,wo das Problem liegt? Wenn es nicht ein sehr grosser Aufwand ist
>> waere es nett,wenn vielleicht jemand das Skript so abaendern koennte,dass
>> die Ergebnislinks funktionieren!?
>>
>> Vielen Dank im voraus.
>>
>> Mfg Christian
>>
>> [Skript]
>>
>
>
> Wirf das Skript _sofort_ weg und mach es richtig oder such dir ein
> Anderes. Ich bekomme schon Augenkrebs, wenn ich das lesen muss. Hab es
> nicht geschafft bis zu dem Problem zu lesen - war schon viel zu
> geschockt von der schlechten Qualität des Skriptes.
>

Hallo.

Aufgrund meiner geringen Kenntniss in PHP kann ich leider nicht die
Qualitaet beurteilen und glaube das einfach mal so :)
Wenn ich es richtig koennte,wuerde ich es gerne selber richtig machen.
Ich google nochmal ne Runde.Vielleicht finde ich etwas,was ich vielleicht
auch gleich auf Anhieb verstehe :)

Mfg Christian

--
Nichts ist schwieriger und nichts erfordert mehr Charakter als sich im
offenen Gegensnatz seiner Zeit zu befinden und laut zu sagen - Nein.